package com.losdun.product.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.losdun.common.annotation.Excel;
import com.losdun.common.core.domain.BaseEntity;
import com.losdun.product.domain.vo.ProductAttributeVo;
import com.losdun.product.domain.vo.SkuVo;
import com.losdun.product.domain.vo.TreeSelectVo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.math.BigDecimal;
import java.util.List;

/**
 * 产品对象 prod_product
 * 
 * @author sword.ye
 * @date 2025-02-27
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ToString(callSuper = true)
@TableName("prod_product")
public class Product extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 产品ID */
    private Long id;

    /** 分类ID */
    @Excel(name = "分类ID")
    private Long categoryId;

    /** 产品名称 */
    @Excel(name = "产品名称")
    private String name;

    /** 产品编号 */
    @Excel(name = "产品编号")
    private String productNumber;
    /** 价格 */
    @Excel(name = "产品价格")
    private BigDecimal price;
    /** 价格单位*/
    private String unit;
    /** 0-单属性 1-多属性*/
    private Integer type;
    /** 是否支持颜色定制 0-不支持 1-支持*/
    private Integer isColorCustom;
    /** 颜色定制价格 */
    private BigDecimal colorCustomPrice;
    /** 是否支持门中门 0-不支持 1-支持*/
    private Integer isIndoor;
    /** 门中定制价格 */
    private BigDecimal indoorPrice;
    /** 小门单套价格 */
    private BigDecimal smallDoorUnitPrice;
    /** 小门单套无忧包价格 */
    private BigDecimal smallDoorUnitServicePrice;
    /** 产品头图 */
    private String imageUrl;
    /** 排序 */
    private Integer sortNo;

    /** 状态（0正常 1停用） */
    @Excel(name = "状态", readConverterExp = "0=正常,1=停用")
    private String status;

    /** 产品描述 */
    @Excel(name = "产品描述")
    private String description;

    /**产品详情**/
    private String content;

    /** 所选属性 */
    private List<TreeSelectVo> attributes;

    /** 所选属性json */
    private String attributesJson;
    /**
     * skus
     */
    private List<SkuVo> skus;
    /** 分类名称 */
    private String categoryName;
    private String categoryRemark;

    @TableField(exist = false)
    private Category category;

    private List<ProductAttributeVo> prodAttrList;

    private BigDecimal minPrice;

}
